
namespace ShoppingCart.Business.Logic
{
	using System;
	using System.Collections.Generic;
	using ShoppingCart.Business.Entity;
	using ShoppingCart.DataAccess;

	/// <summary>
	/// Represents the Manager of DetallePedido.
	/// </summary>
	[Serializable]
	public class DetallePedidoManager : Singleton<DetallePedidoManager>
	{
		#region Methods

		/// <summary>
		/// Selects a single record from the DetallePedido table.
		/// </summary>
		public DetallePedido Obtener(int idPedido, int idProducto)
		{
			try
			{
				return DetallePedidoData.Instancia.Obtener(idPedido, idProducto);
			}
			catch (Exception) { throw; }
		}

		/// <summary>
		/// Selects all records from the DetallePedido table by a foreign key.
		/// </summary>
		public IList<DetallePedido> ListarPorIdPedido(int idPedido)
		{
			try
			{
				return DetallePedidoData.Instancia.ListarPorIdPedido(idPedido);
			}
			catch (Exception) { throw; }
		}

		/// <summary>
		/// Selects all records from the DetallePedido table by a foreign key.
		/// </summary>
		public IList<DetallePedido> ListarPorIdProducto(int idProducto)
		{
			try
			{
				return DetallePedidoData.Instancia.ListarPorIdProducto(idProducto);
			}
			catch (Exception) { throw; }
		}

		/// <summary>
		/// Saves a record to the DetallePedido table.
		/// </summary>
		public int Agregar(DetallePedido detallePedido)
		{
			try
			{
				return DetallePedidoData.Instancia.Agregar(detallePedido);
			}
			catch (Exception) { throw; }
		}

		/// <summary>
		/// Updates a record in the DetallePedido table.
		/// </summary>
		public bool Modificar(DetallePedido detallePedido)
		{
			try
			{
				return DetallePedidoData.Instancia.Modificar(detallePedido);
			}
			catch (Exception) { throw; }
		}

		/// <summary>
		/// Deletes a record from the DetallePedido table by its primary key.
		/// </summary>
		public bool Eliminar(int idPedido, int idProducto)
		{
			try
			{
				return DetallePedidoData.Instancia.Eliminar(idPedido, idProducto);
			}
			catch (Exception) { throw; }
		}

		/// <summary>
		/// Deletes a record from the DetallePedido table by a foreign key.
		/// </summary>
		public void EliminarPorIdPedido(int idPedido)
		{
			try
			{
				DetallePedidoData.Instancia.EliminarPorIdPedido(idPedido);
			}
			catch (Exception) { throw; }
		}

		/// <summary>
		/// Deletes a record from the DetallePedido table by a foreign key.
		/// </summary>
		public void EliminarPorIdProducto(int idProducto)
		{
			try
			{
				DetallePedidoData.Instancia.EliminarPorIdProducto(idProducto);
			}
			catch (Exception) { throw; }
		}

		#endregion
	}
}
